package models

import "cgs-server/helper"

// ApiDataModel 接口常量
type ApiDataModel struct {
	Key    string        `json:"key"`
	Title  string        `json:"title"`
	Method string        `json:"method"`
	Url    string        `json:"url"`
	Fields []interface{} `json:"fields"`
}

// 返回给前端展示的接口数据
const jsonData = `[
  {
    "key": "getApp",
    "title": "获取应用信息",
    "method": "get",
    "url": "/api/v2/app/get",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "appId",
        "type": "string",
        "isRequired": true,
        "desc": "应用ID",
        "value": ""
      }
    ]
  },
  {
    "key": "getWorksheetInfo",
    "title": "获取工作表结构信息",
    "method": "post",
    "url": "/api/v2/worksheet/getWorksheetInfo",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      }
    ]
  },
  {
    "key": "getFilterRows",
    "title": "获取列表",
    "method": "post",
    "url": "/api/v2/worksheet/getFilterRows",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "pageSize",
        "type": "number",
        "isRequired": false,
        "desc": "分页大小",
        "value": 10
      },
      {
        "name": "pageNo",
        "type": "number",
        "isRequired": false,
        "desc": "页码",
        "value": 1
      },
      {
        "name": "sortField",
        "type": "string",
        "isRequired": false,
        "desc": "排序字段",
        "value": ""
      },
      {
        "name": "isAsc",
        "type": "boolean",
        "isRequired": false,
        "desc": "是否升序",
        "value": false
      },
      {
        "name": "keywords",
        "type": "string",
        "isRequired": false,
        "desc": "搜索文本",
        "value": ""
      },
      {
        "name": "filters",
        "type": "list",
        "isRequired": false,
        "desc": "过滤条件",
        "value": []
      }
    ]
  },
  {
    "key": "addRow",
    "title": "新建行记录",
    "method": "post",
    "url": "/api/v2/worksheet/addRow",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "data",
        "type": "object",
        "isRequired": true,
        "desc": "数据",
        "value": {}
      }
    ]
  },
  {
    "key": "getRowById",
    "title": "获取行记录详情",
    "method": "get",
    "url": "/api/v2/worksheet/getRowById",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rowId",
        "type": "string",
        "isRequired": true,
        "desc": "行记录ID",
        "value": ""
      }
    ]
  },
  {
    "key": "deleteRow",
    "title": "删除行记录",
    "method": "post",
    "url": "/api/v2/worksheet/deleteRow",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rowId",
        "type": "string",
        "isRequired": true,
        "desc": "行记录ID",
        "value": ""
      }
    ]
  },
  {
    "key": "editRow",
    "title": "更新行记录详情",
    "method": "post",
    "url": "/api/v2/worksheet/editRow",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rowId",
        "type": "string",
        "isRequired": true,
        "desc": "行记录ID",
        "value": ""
      },
      {
        "name": "data",
        "type": "object",
        "isRequired": true,
        "desc": "数据",
        "value": {}
      }
    ]
  },
  {
    "key": "addRows",
    "title": "批量新建行记录",
    "method": "post",
    "url": "/api/v2/worksheet/addRows",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rows",
        "type": "list",
        "isRequired": true,
        "desc": "数据",
        "value": []
      }
    ]
  },
  {
    "key": "editRows",
    "title": "批量更新行记录详情",
    "method": "post",
    "url": "/api/v2/worksheet/editRows",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rowIds",
        "type": "list",
        "isRequired": true,
        "desc": "行记录ID(数组)",
        "value": []
      },
      {
        "name": "data",
        "type": "object",
        "isRequired": true,
        "desc": "数据",
        "value": {}
      },
      {
        "name": "isAll",
        "type": "boolean",
        "isRequired": false,
        "desc": "是否全选",
        "value": false
      },
      {
        "name": "filters",
        "type": "list",
        "isRequired": false,
        "desc": "过滤条件",
        "value": []
      }
    ]
  },
{
    "key": "deleteRows",
    "title": "批量删除行记录",
    "method": "post",
    "url": "/api/v2/worksheet/deleteRows",
    "fields": [
      {
        "name": "App-Key",
        "type": "string",
        "isRequired": true,
        "desc": "AppKey",
        "value": ""
      },
      {
        "name": "Sign",
        "type": "string",
        "isRequired": true,
        "desc": "Sign",
        "value": ""
      },
      {
        "name": "worksheetId",
        "type": "string",
        "isRequired": true,
        "desc": "工作表ID",
        "value": ""
      },
      {
        "name": "rowIds",
        "type": "list",
        "isRequired": true,
        "desc": "行记录ID(数组)",
        "value": []
      },
      {
        "name": "isAll",
        "type": "boolean",
        "isRequired": false,
        "desc": "是否全选",
        "value": false
      },
      {
        "name": "filters",
        "type": "list",
        "isRequired": false,
        "desc": "过滤条件",
        "value": []
      }
    ]
  }
]`

func GetApiData() ([]*ApiDataModel, error) {
	var arr []*ApiDataModel
	err := helper.FromJSON([]byte(jsonData), &arr)
	if err != nil {
		return nil, err
	}
	return arr, nil
}
